The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
As used herein, the term “data center” refers to a colocation of associated servers. The servers that belong to a particular data center are within the same building or complex but data centers are typically located geographically distant from each other. The geographic distance adds protection so that catastrophic failure in one data center caused by a natural disaster would not also cause failure in the other data center. For example, one data center might be located on the East Coast in New York and another data center might be located on the West Coast in San Francisco.
Global load balancing or “GLB,” is a mechanism for distributing client access to particular services across a plurality of servers. For example, in a situation in which a particular service is provided by servers that belong to data centers in New York and San Francisco, GLB might distribute client access so that the number of clients connected to the data center in New York is about the same as the number of clients connected to the data center in San Francisco.
When used in the context of the Internet, GLB may use a variety of active and passive monitoring techniques to generate a complex map of the Internet. Based upon this map, GLB makes traffic routing decisions to connect a client to the “closest” server. As used herein, “close” does not necessarily mean basing the determination only on geographic proximity. As used herein, a “close” server is a server that results in the fastest connection to the client. Thus, if a server that was located 100 miles away were slower for the client to reach than a server located 200 miles away because of heavy congestion, then GLB would route the client to the “closer” server that is 200 miles away.
Many active and passive monitoring mechanisms build a global map of Internet proximity for GLB. The protocols used by these mechanisms may include, but are not limited to, ICMP (ping), BGP (border gateway protocol), and manual entry. The Internet Control Message Protocol (ICMP) is one of the core protocols of the Internet. One important ICMP application is the ping tool. The ping tool sends and receives ICMP Echo Request and Response messages to determine whether a host is reachable and the length of time packets take to travel to and from the host. The Border Gateway Protocol (BGP) is the core routing protocol of the Internet. BGP works by maintaining a table of IP networks that designate network reachability among autonomous systems (AS). BGP makes routing decisions based on path, network policies, and rulesets. Unfortunately, these mechanisms and protocols are not able to monitor the actual performance of a web connection that employs the TCP protocol and thus accurate routing determinations for TCP connections may not be made.
Due to dynamic changes in topology and connectivity, GLB systems may have difficulty maintaining a full and accurate map of the Internet. Inaccuracies in the map may lead to incorrect routing decisions. Significant time may be required to correct these routing decisions based upon which mapping protocol is employed.